package com.chentongwei.core.user.dao;

import com.chentongwei.facade.user.entity.io.LoginIO;
import com.chentongwei.facade.user.entity.io.RegistUserIO;
import com.chentongwei.facade.user.entity.vo.UserVO;

/**
 * 用户DAO
 *
 * @author TongWei.Chen 2017-9-17 17:32:31
 **/
public interface IUserDAO {

    /**
     * 注册
     *
     * @param userIO：用户信息
     */
    void regist(RegistUserIO userIO);

    /**
     * 登录
     *
     * @param loginIO：登录信息
     * @return UserVO
     */
    UserVO login(LoginIO loginIO);

    /**
     * 检查电子邮件是否唯一
     *
     * @param email：电子邮件
     * @return boolean
     */
    boolean getByEmail(String email);

    /**
     * 根据id查询用户信息
     *
     * @param userId：用户id
     * @return UserVO
     */
    UserVO getById(Integer userId);

    /**
     * 激活用户
     *
     * @param userId：用户id
     */
    void activeUser(Integer userId);

    /**
     * 删除没有激活的用户（目前在task任务里用的，每天跑一次小程序删除那些大于两小时还没激活的用户。）
     */
    void deleteUnActiveUser();

}
